1. Field of the Invention
The present invention is directed to a tangent-space painting system, offering a high degree of predictability as a brush conforms to an underlying surface curvature. More particularly, the present invention relates to a tangent space brush that paint directly onto the surface of the three dimensional (or higher) object, providing an easy way for a user to paint directly onto a three dimensional object, without having to manipulate a corresponding 2D texture.
2. Description of the Related Art
Typically, when creating virtual 3D objects, it is common to apply 2D images to a 3D surface, helping to simulate the appearance of a real object. This technique, known as texture mapping, provides indirect control over the material parameters of the surface, such as color, shininess, roughness, or even geometrical properties like bumps. The technique known as 3D painting strives to provide direct control over the appearance of the surface. However, a number of technologies are required to support the simulation of painting on a three dimensional physical object using a 2D input device.
The 3D objects used in 3D paint systems are typically “parametric objects.” The mathematical definition of a parametric object would be any piece of geometry defined as a collection of subsets of an n-dimensional space, where each subset can be represented by a p variable function F:
F: R pR n
(s, t . . . )F(s, t . . . )
In the case of a 3D object, p=2, n=3, and F is the texture mapping function. For a 3D object, we say that the 3D object is a parameterized object, which “lives” in 3D space.
For relatively flat surfaces, and when parameterization is uniform, texture mapping is simple using 2D paint software or scan data. In these cases, manipulating the texture indirectly in 2D suffices. However, in complex scenes and on complex characters, only direct manipulation offers enough usability to achieve the desired results. In typical non-trivial scenes, parameter-space is severely distorted or the geometry shape or topology is unworkable with indirect methods. 3D painting offers direct manipulation by managing non-intuitive mappings for the user.
Several systems simply use a 2D painting system and periodically project the digital painting back onto the 3D object “beneath” the painting. This technique is called screen-space projection as the user effectively “paints” on the screen, which is projected onto a 3D object displayed “behind” the screen. While this approach works well when the object being painted is quite flat and facing the screen (like a piece of paper placed on the screen), it works quite poorly on objects that curve away from the screen (like a sphere) as the projection process smears the painting across the surface. This problem can also be viewed as brush distortion, e.g. a circular brush will produce a distorted elliptical smear of paint on a surface, which moves (or is angled) away from the screen. 3D objects with a complex shape, or complex topology, further complicate the use of a screen-space system due to the restrictions of such a simple projection.
For example, FIGS. 1A and 1B illustrate a prior art method of painting a 3D sphere. FIG. 1A illustrates a three dimensional sphere 100 comprised of polygons. FIG. 1B illustrates a “texture space”, which is a 2D texture space corresponding to the sphere illustrated in 3D.
Suppose a user wants to paint a checkerboard pattern onto the sphere. The user can copy a standard checkerboard pattern 101 onto the 2D texture space illustrated in FIG. 1B. Thereafter, the texture space illustrated in FIG. 1B can be projected onto the sphere 100 as illustrated in FIG. 1A.
However, directly transposing the pattern on the 2D texture space onto the 3D sphere results in distortions. For example, see the top pole area 102 of the sphere illustrated in FIG. 1A, which illustrates severe distortions (a swirl appearance) of the checkerboard pattern. Furthermore, the checkerboard square patterns are mapped into long or thin rectangles on the sphere, depending on how far they are from the equator. This was not originally intended.
Other prior art approaches to this problem would perform complex computations onto the already painted 2D texture space to intentionally distort the 2D space (to match the 3D shape) before projecting it onto the 3D shape. However, such approaches are burdensome for the user and time consuming, and also subject to a host of other practical problems including problematic reassembly of the different pieces. On complex objects, this is not even possible to achieve.
Therefore, what is needed is a system that allows a user to paint directly onto the surface of a parametric object living in three dimensions or higher, thereby allowing a user to easily paint on a 3D surface without concern for distortion and without having to first paint in the 2D texture space.